From 847a793b1528c0a48d7ae61d3ca89379c2f66112 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Tue, 21 Aug 2018 22:27:57 +0000
Subject: [PATCH 1/8] update netinet/tcp.h for linux v4.18

add packet delivery info to tcp_info,
new in linux commit feb5f2ec646483fb66f9ad7218b1aad2a93a2a5c
add TCP_ZEROCOPY_RECEIVE socket option for zerocopy receive,
new in linux commit 05255b823a6173525587f29c4e8f1ca33fd7677d
add TCP_INQ socket option and TCP_CM_INQ cmsg to get in-queue bytes in cmsg
upon read, new in linux commit b75eba76d3d72e2374fac999926dafef2997edd2
add TCP_REPAIR_* to fix repair socket window probe patch,
new in linux commit 31048d7aedf31bf0f69c54a662944632f29d82f2
---
 include/netinet/tcp.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/include/netinet/tcp.h b/include/netinet/tcp.h
index 1e2acfbf..584af2f5 100644
--- a/include/netinet/tcp.h
+++ b/include/netinet/tcp.h
@@ -36,6 +36,10 @@
 #define TCP_MD5SIG_EXT   32
 #define TCP_FASTOPEN_KEY 33
 #define TCP_FASTOPEN_NO_COOKIE 34
+#define TCP_ZEROCOPY_RECEIVE   35
+#define TCP_INQ          36
+
+#define TCP_CM_INQ TCP_INQ
 
 #define TCP_ESTABLISHED  1
 #define TCP_SYN_SENT     2
@@ -66,6 +70,8 @@ enum {
 	TCP_NLA_SNDQ_SIZE,
 	TCP_NLA_CA_STATE,
 	TCP_NLA_SND_SSTHRESH,
+	TCP_NLA_DELIVERED,
+	TCP_NLA_DELIVERED_CE,
 };
 
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
@@ -217,6 +223,8 @@ struct tcp_info {
 	uint64_t tcpi_busy_time;
 	uint64_t tcpi_rwnd_limited;
 	uint64_t tcpi_sndbuf_limited;
+	uint32_t tcpi_delivered;
+	uint32_t tcpi_delivered_ce;
 };
 
 #define TCP_MD5SIG_MAXKEYLEN    80
@@ -240,6 +248,10 @@ struct tcp_diag_md5sig {
 	uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN];
 };
 
+#define TCP_REPAIR_ON		1
+#define TCP_REPAIR_OFF		0
+#define TCP_REPAIR_OFF_NO_WP	-1
+
 struct tcp_repair_window {
 	uint32_t snd_wl1;
 	uint32_t snd_wnd;
@@ -248,6 +260,12 @@ struct tcp_repair_window {
 	uint32_t rcv_wup;
 };
 
+struct tcp_zerocopy_receive {
+	uint64_t address;
+	uint32_t length;
+	uint32_t recv_skip_hint;
+};
+
 #endif
 
 #endif
-- 
2.17.1

